package ar.edu.utn.frba.disenio.aterrizar.ui.arena.repociudades;

import java.util.ArrayList;
import java.util.List;
import org.uqbar.commons.model.UserException;
import org.uqbar.commons.utils.Observable;

import java.io.Serializable;

@Observable
public class RepositorioCiudades implements Serializable{

	private static RepositorioCiudades instance;
	private List<Ciudad> ciudades = new ArrayList<Ciudad>();

	public static RepositorioCiudades getInstance() {
		if (instance == null) {
			instance = new RepositorioCiudades();
		}
		return instance;
	}

	private RepositorioCiudades() {
		this.create(new Ciudad("Buenos Aires","BS"));
		this.create(new Ciudad("New York","NY"));
		this.create(new Ciudad("Los Angeles","LA"));
		this.create(new Ciudad("Ezeiza","EZE"));
		this.create(new Ciudad("Peru","PER"));
		this.create(new Ciudad("Estados Unidos","USA"));
		this.create(new Ciudad("Ushuaia","USH"));
		this.create(new Ciudad("Aeroparque","AEO"));		
	}

	public void create(Ciudad unaCiudad) {
		this.ciudades.add(unaCiudad);
	}

	public Ciudad get(String nombre) {
		for (Ciudad unaCiudad : this.ciudades) {
			if (unaCiudad.getNombreCiudad().equals(nombre)) {
				return unaCiudad;
			}
		}

		throw new UserException("No se encontró origen/destino: " + nombre);
	}

	public List<Ciudad> getCiudades() {
		return this.ciudades;
	}
}
